package hangxingliu.java.yddictapi.demo;

import java.io.File;

import hangxingliu.java.yddictapi.YdDict;
import hangxingliu.java.yddictapi.YdDictResponse;
import hangxingliu.java.yddictapi.debug.Console;

/**
 * 查询演示类
 * 
 * @author VoyageLiu
 * @version 2.0
 */
public class Demo {

	/**
	 * 启动演示程序
	 * @param args
	 */
	public static void main(String[] args) {
		//打开控制台的调试模式,可以看到错误输出信息
		Console.debug(true);
		
		//查询单词或中文
		String[] qWord = new String[]{
				"HelloWorld!","Hello","航行","航行刘"};

		for(String q : qWord){
			System.out.println(String.format("查询\"%s\"...", q));
			OutputYdDictResponse(YdDict.translate(q));
		}
		
		//查询更加详细的内容
		String qWordDetail = "Hello";
		
		System.out.println(String.format("查询详细内容\"%s\"...", qWordDetail));
		OutputYdDictResponse(YdDict.detailedTranslate(qWordDetail));
		
		//保存单词读音到文件
		File saveTo = new File("C:\\exportPronounce\\");
		String qWordPronounce = "Pronounce";
		YdDict.PronounceLang lang = YdDict.PronounceLang.AMERICAN;
		
		if(!saveTo.exists())
			saveTo.mkdirs();
		
		System.out.println(YdDict.getPronounce(qWordPronounce,
				lang, new File(saveTo,qWordPronounce.concat(".mp3")))?"保存到文件成功!":"保存到文件失败!");
	}
	
	/**
	 * 输出查询结果
	 * @param res 查询结果
	 */
	private static void OutputYdDictResponse(YdDictResponse res){
		//如果查询结果有错误
		if(res.haveError()){
			System.out.println("查询出错:");
			System.out.println(res.getError());
		}else{
			//如果查询结果为空
			if(!res.queryToHead()){
				System.out.println("查询结果为空");
			}else{
				do{
					System.out.println(res.getBlockName());
					System.out.println(res.getBlockData());
				}while(res.queryToNext());
			}
		}
	}

	//无效的私有构建函数
	private Demo(){
		//用于隐藏公共构建函数
	}
}
